<template>
  <div>
    <p>请选择你要购买的书籍</p>
    <ul>
      <!-- 循环遍历arr 渲染到 页面 -->
      <li v-for="(val, index) in arr" :key="index">
        <span>{{ val.name }}</span>
        <!-- 给按钮注册点击事件 -->
        <button @click="buyBook(index)">买书</button>
      </li>
    </ul>
    <table border="1" width="500" cellspacing="0">
      <tr>
        <th>序号</th>
        <th>书名</th>
        <th>单价</th>
        <th>数量</th>
        <th>合计</th>
      </tr>
      <tr v-for="(val, index) in arr" :key="index">
        <!-- 序号就是索引+1 -->
        <td>{{ index + 1 }}</td>
        <td>{{ val.name }}</td>
        <td>{{ val.price }}</td>
        <td>{{ val.count }}</td>
        <!-- 合计就是数量  *  价格 -->
        <td>{{ val.count * val.price }}</td>
      </tr>
    </table>
    <!-- 总价是根据合计的变化而变化的  所以在computed里面定义个money
    计算属性的写法 -->
    <p>总价格为:{{ money }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      arr: [
        {
          name: "水浒传",
          price: 107,
          count: 0,
        },
        {
          name: "西游记",
          price: 192,
          count: 0,
        },
        {
          name: "三国演义",
          price: 219,
          count: 0,
        },
        {
          name: "红楼梦",
          price: 178,
          count: 0,
        },
      ],
    };
  },
  computed: {
    money() {
      return this.arr.reduce((sum, val) => sum + val.count * val.price, 0);
    },
  },
  methods: {
    // 买书按钮主要是添加表格里的数量
    // 点击事件传入的参数是索引值  可以根据索引值找到  count  然后点击的时候++
    buyBook(index) {
      this.arr[index].count++;
    },
  },
};
</script>
<style scoped>
table {
  text-align: center;
}
</style>